/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package entityBeans;

import java.io.Serializable;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 *
 * @author allankv
 */
@Entity
@Table(name = "localityelement")
@NamedQueries({
    @NamedQuery(name = "Localityelement.findAll", query = "SELECT l FROM Localityelement l"),
    @NamedQuery(name = "Localityelement.findByIdlocalityelement", query = "SELECT l FROM Localityelement l WHERE l.idlocalityelement = :idlocalityelement"),
    @NamedQuery(name = "Localityelement.findByMinimumelevationinmeters", query = "SELECT l FROM Localityelement l WHERE l.minimumelevationinmeters = :minimumelevationinmeters"),
    @NamedQuery(name = "Localityelement.findByMaximumelevationinmeters", query = "SELECT l FROM Localityelement l WHERE l.maximumelevationinmeters = :maximumelevationinmeters"),
    @NamedQuery(name = "Localityelement.findByMinimumdepthinmeters", query = "SELECT l FROM Localityelement l WHERE l.minimumdepthinmeters = :minimumdepthinmeters"),
    @NamedQuery(name = "Localityelement.findByMaximumdepthinmeters", query = "SELECT l FROM Localityelement l WHERE l.maximumdepthinmeters = :maximumdepthinmeters"),
    @NamedQuery(name = "Localityelement.findByVerbatimlocality", query = "SELECT l FROM Localityelement l WHERE l.verbatimlocality = :verbatimlocality"),
    @NamedQuery(name = "Localityelement.findByMinimumdistanceabovesurfaceinmeters", query = "SELECT l FROM Localityelement l WHERE l.minimumdistanceabovesurfaceinmeters = :minimumdistanceabovesurfaceinmeters"),
    @NamedQuery(name = "Localityelement.findByMaximumdistanceabovesurfaceinmeters", query = "SELECT l FROM Localityelement l WHERE l.maximumdistanceabovesurfaceinmeters = :maximumdistanceabovesurfaceinmeters"),
    @NamedQuery(name = "Localityelement.findByLocationaccordingto", query = "SELECT l FROM Localityelement l WHERE l.locationaccordingto = :locationaccordingto"),
    @NamedQuery(name = "Localityelement.findByLocationremark", query = "SELECT l FROM Localityelement l WHERE l.locationremark = :locationremark"),
    @NamedQuery(name = "Localityelement.findByVerbatimdepth", query = "SELECT l FROM Localityelement l WHERE l.verbatimdepth = :verbatimdepth"),
    @NamedQuery(name = "Localityelement.findByVerbatimelevation", query = "SELECT l FROM Localityelement l WHERE l.verbatimelevation = :verbatimelevation"),
    @NamedQuery(name = "Localityelement.findByVerbatimsrs", query = "SELECT l FROM Localityelement l WHERE l.verbatimsrs = :verbatimsrs"),
    @NamedQuery(name = "Localityelement.findByCoordinateprecision", query = "SELECT l FROM Localityelement l WHERE l.coordinateprecision = :coordinateprecision"),
    @NamedQuery(name = "Localityelement.findByFootprintsrs", query = "SELECT l FROM Localityelement l WHERE l.footprintsrs = :footprintsrs"),
    @NamedQuery(name = "Localityelement.findByHighergeograph", query = "SELECT l FROM Localityelement l WHERE l.highergeograph = :highergeograph")})
public class Localityelement implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "idlocalityelement")
    private Integer idlocalityelement;
    @Column(name = "minimumelevationinmeters")
    private String minimumelevationinmeters;
    @Column(name = "maximumelevationinmeters")
    private String maximumelevationinmeters;
    @Column(name = "minimumdepthinmeters")
    private String minimumdepthinmeters;
    @Column(name = "maximumdepthinmeters")
    private String maximumdepthinmeters;
    @Column(name = "verbatimlocality")
    private String verbatimlocality;
    @Column(name = "minimumdistanceabovesurfaceinmeters")
    private Float minimumdistanceabovesurfaceinmeters;
    @Column(name = "maximumdistanceabovesurfaceinmeters")
    private Float maximumdistanceabovesurfaceinmeters;
    @Column(name = "locationaccordingto")
    private String locationaccordingto;
    @Column(name = "locationremark")
    private String locationremark;
    @Column(name = "verbatimdepth")
    private String verbatimdepth;
    @Column(name = "verbatimelevation")
    private String verbatimelevation;
    @Column(name = "verbatimsrs")
    private String verbatimsrs;
    @Column(name = "coordinateprecision")
    private String coordinateprecision;
    @Column(name = "footprintsrs")
    private String footprintsrs;
    @Column(name = "highergeograph")
    private String highergeograph;
    @ManyToMany(mappedBy = "localityelementList", fetch = FetchType.LAZY)
    private List<Georeferencesource> georeferencesourceList;
    @ManyToMany(mappedBy = "localityelementList", fetch = FetchType.LAZY)
    private List<Georeferencedby> georeferencedbyList;
    @OneToMany(mappedBy = "localityelement", fetch = FetchType.LAZY)
    private List<Specimen> specimenList;
    @JoinColumn(name = "idwaterbody", referencedColumnName = "idwaterbody")
    @ManyToOne(fetch = FetchType.LAZY)
    private Waterbody waterbody;
    @JoinColumn(name = "idstateprovince", referencedColumnName = "idstateprovince")
    @ManyToOne(fetch = FetchType.LAZY)
    private Stateprovince stateprovince;
    @JoinColumn(name = "idsite_", referencedColumnName = "idsite_")
    @ManyToOne(fetch = FetchType.LAZY)
    private Site site;
    @JoinColumn(name = "idmunicipality", referencedColumnName = "idmunicipality")
    @ManyToOne(fetch = FetchType.LAZY)
    private Municipality municipality;
    @JoinColumn(name = "idlocality", referencedColumnName = "idlocality")
    @ManyToOne(fetch = FetchType.LAZY)
    private Locality locality;
    @JoinColumn(name = "idislandgroup", referencedColumnName = "idislandgroup")
    @ManyToOne(fetch = FetchType.LAZY)
    private Islandgroup islandgroup;
    @JoinColumn(name = "idisland", referencedColumnName = "idisland")
    @ManyToOne(fetch = FetchType.LAZY)
    private Island island;
    @JoinColumn(name = "idhabitat", referencedColumnName = "idhabitat")
    @ManyToOne(fetch = FetchType.LAZY)
    private Habitat habitat;
    @JoinColumn(name = "idgeoreferenceverificationstatus", referencedColumnName = "idgeoreferenceverificationstatus")
    @ManyToOne(fetch = FetchType.LAZY)
    private Georeferenceverificationstatus georeferenceverificationstatus;
    @JoinColumn(name = "idcounty", referencedColumnName = "idcounty")
    @ManyToOne(fetch = FetchType.LAZY)
    private County county;
    @JoinColumn(name = "idcountry", referencedColumnName = "idcountry")
    @ManyToOne(fetch = FetchType.LAZY)
    private Country country;
    @JoinColumn(name = "idcontinent", referencedColumnName = "idcontinent")
    @ManyToOne(fetch = FetchType.LAZY)
    private Continent continent;

    public Localityelement() {
    }

    public Localityelement(Integer idlocalityelement) {
        this.idlocalityelement = idlocalityelement;
    }

    public Integer getIdlocalityelement() {
        return idlocalityelement;
    }

    public void setIdlocalityelement(Integer idlocalityelement) {
        this.idlocalityelement = idlocalityelement;
    }

    public String getMinimumelevationinmeters() {
        return minimumelevationinmeters;
    }

    public void setMinimumelevationinmeters(String minimumelevationinmeters) {
        this.minimumelevationinmeters = minimumelevationinmeters;
    }

    public String getMaximumelevationinmeters() {
        return maximumelevationinmeters;
    }

    public void setMaximumelevationinmeters(String maximumelevationinmeters) {
        this.maximumelevationinmeters = maximumelevationinmeters;
    }

    public String getMinimumdepthinmeters() {
        return minimumdepthinmeters;
    }

    public void setMinimumdepthinmeters(String minimumdepthinmeters) {
        this.minimumdepthinmeters = minimumdepthinmeters;
    }

    public String getMaximumdepthinmeters() {
        return maximumdepthinmeters;
    }

    public void setMaximumdepthinmeters(String maximumdepthinmeters) {
        this.maximumdepthinmeters = maximumdepthinmeters;
    }

    public String getVerbatimlocality() {
        return verbatimlocality;
    }

    public void setVerbatimlocality(String verbatimlocality) {
        this.verbatimlocality = verbatimlocality;
    }

    public Float getMinimumdistanceabovesurfaceinmeters() {
        return minimumdistanceabovesurfaceinmeters;
    }

    public void setMinimumdistanceabovesurfaceinmeters(Float minimumdistanceabovesurfaceinmeters) {
        this.minimumdistanceabovesurfaceinmeters = minimumdistanceabovesurfaceinmeters;
    }

    public Float getMaximumdistanceabovesurfaceinmeters() {
        return maximumdistanceabovesurfaceinmeters;
    }

    public void setMaximumdistanceabovesurfaceinmeters(Float maximumdistanceabovesurfaceinmeters) {
        this.maximumdistanceabovesurfaceinmeters = maximumdistanceabovesurfaceinmeters;
    }

    public String getLocationaccordingto() {
        return locationaccordingto;
    }

    public void setLocationaccordingto(String locationaccordingto) {
        this.locationaccordingto = locationaccordingto;
    }

    public String getLocationremark() {
        return locationremark;
    }

    public void setLocationremark(String locationremark) {
        this.locationremark = locationremark;
    }

    public String getVerbatimdepth() {
        return verbatimdepth;
    }

    public void setVerbatimdepth(String verbatimdepth) {
        this.verbatimdepth = verbatimdepth;
    }

    public String getVerbatimelevation() {
        return verbatimelevation;
    }

    public void setVerbatimelevation(String verbatimelevation) {
        this.verbatimelevation = verbatimelevation;
    }

    public String getVerbatimsrs() {
        return verbatimsrs;
    }

    public void setVerbatimsrs(String verbatimsrs) {
        this.verbatimsrs = verbatimsrs;
    }

    public String getCoordinateprecision() {
        return coordinateprecision;
    }

    public void setCoordinateprecision(String coordinateprecision) {
        this.coordinateprecision = coordinateprecision;
    }

    public String getFootprintsrs() {
        return footprintsrs;
    }

    public void setFootprintsrs(String footprintsrs) {
        this.footprintsrs = footprintsrs;
    }

    public String getHighergeograph() {
        return highergeograph;
    }

    public void setHighergeograph(String highergeograph) {
        this.highergeograph = highergeograph;
    }

    public List<Georeferencesource> getGeoreferencesourceList() {
        return georeferencesourceList;
    }

    public void setGeoreferencesourceList(List<Georeferencesource> georeferencesourceList) {
        this.georeferencesourceList = georeferencesourceList;
    }

    public List<Georeferencedby> getGeoreferencedbyList() {
        return georeferencedbyList;
    }

    public void setGeoreferencedbyList(List<Georeferencedby> georeferencedbyList) {
        this.georeferencedbyList = georeferencedbyList;
    }

    public List<Specimen> getSpecimenList() {
        return specimenList;
    }

    public void setSpecimenList(List<Specimen> specimenList) {
        this.specimenList = specimenList;
    }

    public Waterbody getWaterbody() {
        return waterbody;
    }

    public void setWaterbody(Waterbody waterbody) {
        this.waterbody = waterbody;
    }

    public Stateprovince getStateprovince() {
        return stateprovince;
    }

    public void setStateprovince(Stateprovince stateprovince) {
        this.stateprovince = stateprovince;
    }

    public Site getSite() {
        return site;
    }

    public void setSite(Site site) {
        this.site = site;
    }

    public Municipality getMunicipality() {
        return municipality;
    }

    public void setMunicipality(Municipality municipality) {
        this.municipality = municipality;
    }

    public Locality getLocality() {
        return locality;
    }

    public void setLocality(Locality locality) {
        this.locality = locality;
    }

    public Islandgroup getIslandgroup() {
        return islandgroup;
    }

    public void setIslandgroup(Islandgroup islandgroup) {
        this.islandgroup = islandgroup;
    }

    public Island getIsland() {
        return island;
    }

    public void setIsland(Island island) {
        this.island = island;
    }

    public Habitat getHabitat() {
        return habitat;
    }

    public void setHabitat(Habitat habitat) {
        this.habitat = habitat;
    }

    public Georeferenceverificationstatus getGeoreferenceverificationstatus() {
        return georeferenceverificationstatus;
    }

    public void setGeoreferenceverificationstatus(Georeferenceverificationstatus georeferenceverificationstatus) {
        this.georeferenceverificationstatus = georeferenceverificationstatus;
    }

    public County getCounty() {
        return county;
    }

    public void setCounty(County county) {
        this.county = county;
    }

    public Country getCountry() {
        return country;
    }

    public void setCountry(Country country) {
        this.country = country;
    }

    public Continent getContinent() {
        return continent;
    }

    public void setContinent(Continent continent) {
        this.continent = continent;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idlocalityelement != null ? idlocalityelement.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Localityelement)) {
            return false;
        }
        Localityelement other = (Localityelement) object;
        if ((this.idlocalityelement == null && other.idlocalityelement != null) || (this.idlocalityelement != null && !this.idlocalityelement.equals(other.idlocalityelement))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "entityBeans.Localityelement[idlocalityelement=" + idlocalityelement + "]";
    }

}
